﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Threading;

namespace WcfServiceLibrary1 {
    // NOTA: puede usar el comando "Rename" del menú "Refactorizar" para cambiar el nombre de clase "Service1" en el código y en el archivo de configuración a la vez.
   [ServiceBehavior(InstanceContextMode= InstanceContextMode.PerCall,ConcurrencyMode=ConcurrencyMode.Single)]
    public class MyService : IMyService {


        public  string metodo() {
            try {
                int i = 0;
                i = 10 / i;
                Thread.Sleep(10000);
                OperationContext.Current.GetCallbackChannel<CallbackI>().listo("proceso terminado!!");
                
                return "respondiendo";

            } catch (Exception e) {

                Error err = new Error();
                throw new FaultException<Error>(err);

            }
                
        }

        public void oneWayMethod() {
            Thread.Sleep(10000);
            int i = 99;
            OperationContext.Current.GetCallbackChannel<CallbackI>().listo("proceso terminado!!");
           
        }

        public Usuario datacontractResponse() {
            OperationContext.Current.GetCallbackChannel<CallbackI>().listo("proceso terminado!!");
            return new Usuario();
        }


        public System.IO.Stream Data() {
            return new System.IO.FileStream("aslfjl", System.IO.FileMode.OpenOrCreate);
        }
    }

}
